Companies are often faced with the task of generating an allocation plan for procuring supplies such as parts or materials to meet a projected future demand. The plan may be required to allocate business to suppliers in a manner that optimizes an objective such as minimizing total spending. The optimization may need to conform to constraints such as business rules or contract obligations. The allocation of business may be for parts supplied by multiple suppliers to the sites of a company over many time periods. Typically, supplier allocation plans are generated manually with the help of spreadsheets. The complexity of the problem, however, makes it difficult to manually determine optimal allocations. Consequently, generating supplier allocation plans has posed challenges for companies.